Barrel shifters are conventional circuits which may be utilized to shift or rotate the contents of a data path of an integrated circuit, such as a microprocessor or digital signal processor, or other integrated circuit. The output bit pattern of the barrel shifter may be applied to an arithmetic logic unit which provides arithmetic and logic operations thereto. A variable-length shift of a bit on the data path requires the possibility of connecting the selected bit to any one of several other bit paths.
The circuit shown in FIG. 1 comprises a classical 8-bit barrel shifter. The barrel shifter generally receives data via an input 6. The data may be shifted or rotated within the barrel shifter. An array 8 containing passgates may be utilized to perform the shift function. The classical barrel shifter includes 2*d lines of m+1 passgates (d=signed shift value; m=number of bits in input and output data path). Each line includes m+1 passgates (as opposed to only m) to account for the carry over bit.
A decoding section 7 may be utilized to generate a plurality of select signals from control signals received via input 6. The select signals may be applied via lines 4 to the passgate array 8. The classical barrel shifter generates 2*d select signals for providing shifting operations. In particular, the select signals enable an appropriate column of passgates to provide the desired shift of the bit pattern.
It is often desired to optimize the area occupied by components implemented on an integrated circuit to enable the formation of additional components thereupon. Providing additional components enables additional processing of data, faster processing of the data, as well as larger amounts of data to be processed.
Improvements in integrated circuit materials, mechanical equipment and photolithography have enabled close tolerances and small geometries to be attained. Such improvements permit the formation of additional components upon a processor.
In addition, space upon the integrated circuit may be conserved by providing components which require less surface area for implementation. Reducing the surface area required for implementing components such as a barrel shifter provides additional space for providing additional components upon the integrated circuit.
Another primary concern of integrated circuit designers is the propagation delays associated with a particular circuit. Improving the timing of components of an integrated circuit improves the overall timing of the integrated circuit. Improving the timing enhances the ability of the integrated circuit to manipulate and process data at increased speeds.
Therefore, there exists a need for reducing the surface area required for the implementation of a barrel shifter on an integrated circuit as well as improving the timing of the barrel shifter.